package com.moss.cloud.base.api.model.from;

import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

@Data
public class OAuthClientFrom implements Serializable {
    /**主键ID*/
    private Long id;
    /**客户端申请的权限范围*/
    @NotEmpty(message = "客户端申请的权限范围不能为空")
    @Size(max = 256,message = "客户端申请的权限范围不能超过256个字符")
    private List<String> scopeList;
    /**客户端支持的grant_type*/
    @NotEmpty(message = "客户端支持的grant_type不能为空")
    @Size(max = 256,message = "客户端支持的grant_type不能超过256个字符")
    private List<String> authorizedGrantTypesList;
    /**重定向URI*/
    @NotBlank(message = "重定向URI不能为空")
    @Size(max = 256,message = "重定向URI不能超过256个字符")
    private String webServerRedirectUri;
    /**访问令牌有效时间值(单位:秒)*/
    @NotNull(message = "访问令牌有效时间值不能为空")
    private Integer accessTokenValidity;
    /**更新令牌有效时间值(单位:秒)*/
    @NotNull(message = "更新令牌有效时间值不能为空")
    private Integer refreshTokenValidity;
    /** 客户端名称 */
    @NotBlank(message = "客户端名称")
    @Size(max = 120,message = "客户端名称不能超过120个字符")
    private String clientName;
    /** 客户端说明 */
    @Size(max = 300,message = "客户端说明不能超过300个字符")
    private String clientDesc;
}
